Testing and validation of web-based software
نویسندگان
چکیده
The computing environment for web applications is dynamic and complex as internet is heterogeneous, distributed, multi-platform, multimedia, multilingual and cooperative wide area network. The web software itself is also dynamic and rapidly evolving. This complex and dynamic computing environment along with complex user requirements, new features and constraints makes testing of web-based software a challenging task. Traditional testing techniques are not sufficient because they do not incorporate challenges associated with the web-based applications. This research reviews the techniques for testing of web applications and gives a strategy to use the testing techniques meeting the challenges of testing web-based software. Introduction Internet is rapidly creeping into all sectors of our life and has become a vast computing environment. The computing environment is complex as Internet is heterogeneous, distributed, transparent, multi-platform, multilingual, multimedia, autonomous and cooperative wide area network. The environment is also changing with time. The software that use internet as computer face not only this complex and dynamic computing environment but also involves complex user requirements, constraints and new features. The software itself is also dynamic and rapidly evolving. This makes testing of web-based software a complex task. Traditional testing techniques are not adequate for web based applications because they do not incorporate the problems associated with the computation environment, new features and constraints of web-based applications. At present, webbased software testing relies on borrowed testing techniques and need research to explore this area. Limited work has been done on testing web applications. Tremendous effort has been expended to assure the quality of traditional programs, resulting in variety of testing techniques for both stand-alone and distributed systems. But most work on web applications has been on making them more powerful, but relatively less attention has been given to ensure their quality. The main techniques for testing web applications are applying the traditional testing methods because web applications belong to the software and have some commonness with the traditional software. Web applications share some characteristics of client-server and distributed applications and some of these techniques can also be used to help assure the quality of web applications however there are a number of special aspects of web applications that prevent them from being directly used. It needs modifications to existing or completely new techniques. The distinguishing features of web applications as compared to traditional and distributive applications are given below: Role of Client and Server: In client-server systems the roles of the clients and servers and their interactions are predefined and static as compared to web applications where client side programs and contents may be generated dynamically. Dynamic Environment: The environment for web applications is not predefined and is changing dynamically i.e. hardware and software are changing, configuration are ever-changing, the heterogeneity of the hardware and software components, the extremely loose coupling and dynamic integration. Web applications often are affected by these factors that may cause incompatibility and interoperability issues. Execution Control: For traditional programs, the control flow is fully managed by the program, so the user cannot affect it. When executing web application, users can break the normal control flow without alerting the program controller. For example, users can press the back or refresh button in the web browser, which totally changes the execution context, causing unexpected results. Faster Maintenance: Web applications also have much faster maintenance requirements than most traditional software. Therefore maintenance not only needs to be done more frequently, but needs to be done more efficiently due to the peculiar time-to-market pressure for web applications. Diverse User Population: Web application user are diverse, huge population size with different educational backgrounds, age, gender, cultures, aesthetic sense and geographical locations resulting 18th National Computer Conference 2006 © Saudi Computer Society 2 a very complex user profile. The load on web access due to this diversity is not predictable. Content driven: Web applications use hypermedia to present text, audio, video and graphics to user. Other Features: The web hosts an enormous range of technologies, including links, downloaded programs, and dynamic content, stateless aspects each with its own testing challenges. We need to design quality web sites that are not only attractive, user friendly and well-organized, but also easy to navigate and fully-functional. A web site should possess all of these characteristics to be successful. A visually attractive web site soon loses its appeal when important information is not easily accessible and navigation is confusing. So thorough testing of the web software is necessary to eliminate problems which seriously detract user from a web site. This requires huge additional testing requirements like dead-ends, dead links, missing branches, unreachable items, cycles, spelling mistakes, grammatical errors, browser incompatibilities, consumption of un-produced data, web page functionality, plug-ins like shock wave, real audio, performance testing over various connections to determine speed, graphics loading etc. However thorough testing of web applications is not possible due to a number of constraints summarized in the following subsection Challenges of Web Testing In this section we analyze some challenges faced in testing web applications that make thorough testing of web applications a mission impossible: Immediacy: The style of development of web applications is of Rapid Application Development (RAD) method. It has shorter developing and testing time. It is not possible to test every aspect of the web application. It is challenge for a web tester what to test and when to stop testing and optimize resources to get most from the testing effort. Importance of Quality Attributes: For traditional programs, correctness and efficiency are usually the most important quality factors. Web applications are usually information focused and other quality features like usability and reliability are often more important depending upon the application category of the software. In addition compatibility and interoperability are urgent and cause problems that are more serious than with traditional programs. The requirements may also be conflicting. In addition the quality metrics are not available. This is another challenge for a Web applications testing team. Lack of documentation: If the analysis and design documents are available, the testing requirements can be determined more conveniently. However, the Web applications are generally short of the developing documents. So in order to analyze and present the testing requirements, firstly we have to determine the testing targets and then describe the testing objects. Testing Objectives: One of the key challenges in web application testing is to define testing objectives. There is variety of application categories making it difficult to define testing objectives. A few tasks associated defining testing objectives are identifying threats to customer satisfaction, understanding the risks of putting the software into production, product’s behavior against a standard, and minimizing technical support costs. However the story is not so simple. Retesting and Test Automation: An important aspect of web applications testing is its retesting requirement and test automation. For many good reasons, given below, re-testing of web applications is a necessity in web lifecycle. 1. It necessary to retest WAs regularly during its lifecycle due to the evolutionary nature of the Web technologies and applications. 2. Same test is required to be repeated on many browsers. 3. Web applications can be updated quickly and software developed quickly is often bug-ridden unless thoroughly tested. This requires automat ability. 4. There is no brand name loyalty for web. About 40% customers do not return to web site if they encounter service failure (Patel,2001). Certain performance parameters are vital to retain customers on the web. Load is such a parameter. Overloaded servers often refuse service. Such testing is necessary to guarantee the failure free service to the customer. This demanding nature of WAs shows that automated testing is an important part of website testing. In general a tester should automate where appropriate however regression tests should be automated to the furthest extent possible. Cost: Shrinking budgets and high cost of web testing makes it difficult to test every aspect of the web application. Optimization of resources to get most from the testing is a challenge for web tester. Problems Trying to Test We face number of problems while trying to test. The problems that can occur depend on the application, technologies used, settings and environment, user software configuration etc. Few common problems that can arise with web applications are: • Testing for session and cookies require simulating a browser that requires long time to cause timeouts. • Exhaustive test of entries in a given form submission is impossible. • The site may have to go down while being tested. • Testing on a simulated test site may not provide the same environment. • Stress testing is hard to perform on a shared hosting environment, and while the site is live. Automated testing usually populates the database heavily with generated test cases that not only need to be cleared out, but also put additional stress on a live site. It may also cause serious problem to consistency of data. Special Attributes: Web applications also have features that are not present in client-server and distributed systems. These include session control, cookies, and the stateless aspect of HTTP. Therefore, new solutions are necessary for these special features. Security: Security of web applications is another challenge for web applications developers. Web applications execute in an environment where varieties of cooperating hardware & software technologies are involved. There is large number of security aspects of web applications. Not only careful planning of security at design time is hard but also testing & maintaining security of web applications is also a challenge for the testing team. The challenges given above make testing of a web application a difficult task. The current testing field focus is on techniques for unit-level testing and sub-system testing. However web applications testing lack systematic testing methods and techniques to cope with the challenges of testing. Currently the common strategies and techniques for web testing are adopted and usually driven by specific tools, metrics or immediacy, rather than objectives to achieve. They do not yet provide much help to test web applications based on the constraints as described above. The key challenge in Web testing lies in adoption of a testing strategy and the allocation of resources behind it to support execution. As most of the web based applications belong to business world and must be treated in the same context. There are number of constraints as discussed above in the development and testing of web applications. Facing these constraints and finding an optimal solution to the problem of testing web applications is the main focus of this research. We use the principle of economics “satisfying unlimited wants using the limited resources” as it is best suited to our web application development problem i.e. “Unlimited Testing Requirements using Limited Resources.” In this paper we give an economics based testing strategy to fulfill the testing challenges of web applications. The remaining paper is arranged as follows: Section 2: give the survey of testing techniques for web Applications and explain why a testing mechanism is necessary. Section 3: give analysis of the existing testing techniques and strategy for testing WBA. Section 4: conclude the Testing strategy and Future work. Literature Survey A large number of researchers have worked in the field of web application testing. Each researcher has focused in certain test area based on architecture, model, attributes, scenario, domain functionality and other nonfunctional qualities. Testing of web applications using white box testing techniques based on two-layer architecture is given in (Tonella, 2004). A hierarchical strategy for testing web based applications and assuring their reliability based on three-tier architecture of web applications is given in (Tian, 1999). An N-tier architecture for testing web applications is given in (Xiong,2003) that claims to support much greater application complexity, higher traffic, and stronger site security by separating presentation from business logic. WAs involves many types of testing, such as GUI testing, functional testing, database testing etc. A multi-approach testing methodology for WAs has been suggested in (Xu,1999) which applies multiple models, implementation, user profiles and multiple test methods such as grey box, black box, white box. It chooses different Testing and validation
منابع مشابه
Investigation on Reliability Estimation of Loosely Coupled Software as a Service Execution Using Clustered and Non-Clustered Web Server
Evaluating the reliability of loosely coupled Software as a Service through the paradigm of a cluster-based and non-cluster-based web server is considered to be an important attribute for the service delivery and execution. We proposed a novel method for measuring the reliability of Software as a Service execution through load testing. The fault count of the model against the stresses of users ...
متن کاملEffective Software Testing with a String - Constraint
This dissertation presents techniques and tools for improving software reliability, by using an expressive string-constraint solver to make implementation-based testing more effective and more applicable. Concolic testing is a paradigm of implementation-based systematic software testing that combines dynamic symbolic execution with constraint-based systematic execution-path enumeration. Concoli...
متن کاملPractical Model-Based Testing - A Tools Approach
practical model based testing a tools approach practical model based testing a tools approach hgud practical model based testing a tools approach pdf link download practical model based testing a tools approach more about model based testing cqaa model-based testing: next generation functional software a survey of modeldriven testing techniques practical model-based testing willkommen model bas...
متن کاملبررسی تأثیرات رایانش ابری بر یادگیری الکترونیکی
In the world of training, online training is introduced as a modern model of training services. Cloud computing is a modern technology which is provided software, infrastructure and platform as internet. Also, online training is introduced as a modern model of training services on the web. In this research, the impact of cloud computing on e-learning on the case of Mehralborz online university ...
متن کاملPerturbation-based user-input-validation testing of web applications
User-input-validation (UIV) is the first barricade that protects web applications from application-level attacks. Most UIV test tools cannot detect semantics-related vulnerabilities in validators, such as filling eceived in revised form 30 May 2010
متن کاملDeployed software component testing using dynamic validation agents
Software component run-time characteristics are largely dependent on their actual deployment situation. Validating software components i.e., confirming that they meet functional and nonfunctional property requirements, is time-consuming and for some properties quite challenging. We describe the use of “validation agents” to automate the testing of deployed software components to verify that the...
متن کامل